package com.ease.model;

import java.io.Serializable;

import com.ease.model.type.DatabaseDataType;
import com.ease.model.type.DatabaseNullable;

/**
 * 
 * @author nathanleewei
 * 
 */
public class DatabaseColumn implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 823923027208329593L;

	public static final String COLUMN_NAME = "COLUMN_NAME";

	// public static final String COLUMN_SIZE = "COLUMN_SIZE";

	public static final String DATA_TYPE = "DATA_TYPE";

	public static final String DATA_LENGTH = "DATA_LENGTH";

	public static final String DATA_PRECISION = "DATA_PRECISION";

	public static final String DATA_SCALE = "DATA_SCALE";

	public static final String NULLABLE = "NULLABLE";

	public static final String COLUMN_ID = "COLUMN_ID";

	//
	public static final String COMMENTS = "COMMENTS";

	// public static final class MetaData {
	//
	// // public static final String COLUMN_NAME = "COLUMN_NAME";
	//
	// public static final String TYPE_NAME = "TYPE_NAME";
	//
	//
	//
	// public static final int NULLABLE_TRUE = 1;
	//
	// }

	private String columnName;

	private DatabaseDataType dataType;

	private int dataLength;

	private int dataPrecision;

	private int dataScale;

	private DatabaseNullable nullable;

	private long columnId;

	private String comments;

	/**
	 * @return the columnName
	 */
	public String getColumnName() {
		return columnName;
	}

	/**
	 * @param columnName
	 *            the columnName to set
	 */
	public void setColumnName(String columnName) {
		this.columnName = columnName;
	}

	//
	// /**
	// * @return the columnSize
	// */
	// public int getColumnSize() {
	// return columnSize;
	// }
	//
	// /**
	// * @param columnSize
	// * the columnSize to set
	// */
	// public void setColumnSize(int columnSize) {
	// this.columnSize = columnSize;
	// }

	/**
	 * @return the dataType
	 */
	public DatabaseDataType getDataType() {
		return dataType;
	}

	/**
	 * @param dataType
	 *            the dataType to set
	 */
	public void setDataType(DatabaseDataType dataType) {
		this.dataType = dataType;
	}

	/**
	 * @return the dataLength
	 */
	public int getDataLength() {
		return dataLength;
	}

	/**
	 * @param dataLength
	 *            the dataLength to set
	 */
	public void setDataLength(int dataLength) {
		this.dataLength = dataLength;
	}

	/**
	 * @return the dataPrecision
	 */
	public int getDataPrecision() {
		return dataPrecision;
	}

	/**
	 * @param dataPrecision
	 *            the dataPrecision to set
	 */
	public void setDataPrecision(int dataPrecision) {
		this.dataPrecision = dataPrecision;
	}

	/**
	 * @return the dataScale
	 */
	public int getDataScale() {
		return dataScale;
	}

	/**
	 * @param dataScale
	 *            the dataScale to set
	 */
	public void setDataScale(int dataScale) {
		this.dataScale = dataScale;
	}

	/**
	 * @return the nullable
	 */
	public DatabaseNullable getNullable() {
		return nullable;
	}

	/**
	 * @param nullable
	 *            the nullable to set
	 */
	public void setNullable(DatabaseNullable nullable) {
		this.nullable = nullable;
	}

	/**
	 * @return the columnId
	 */
	public long getColumnId() {
		return columnId;
	}

	/**
	 * @param columnId
	 *            the columnId to set
	 */
	public void setColumnId(long columnId) {
		this.columnId = columnId;
	}

	/**
	 * @return the comments
	 */
	public String getComments() {
		return comments;
	}

	/**
	 * @param comments
	 *            the comments to set
	 */
	public void setComments(String comments) {
		this.comments = comments;
	}

}
